/*
*
* FILENAME:		linear_slk.h
* CREATED AT:		2012/May/15
* DECRITION:		delarantion of single link linear and data structure
* 
* MODULE:		any
* PLATFORM:		ubuntu-12.04/gcc-4.6.3
* AUTHOR:		incarnation-lee
* 
* ----------------------REVISION HISTROY------------------------
* No.	Date	Revised by	Function	Descrition
* 1	12/5/15	incar-lee			created
*
*/

#ifndef LINEAR_SLK_H
#define LINEAR_SLK_H

#include "udgtd.h"


STATUS linear_slk_demo(void) __attribute__((pure));

/* operation functions on data element */
static STATUS init_slnk(S_slk_lr**);				/* initilize the linear seq list */
static STATUS clear_slnk(S_slk_lr**);				/* clear all the element of linear list */
static STATUS destory_slnk(S_slk_lr**);				/* clear all the element of linear list */
static STATUS isEmpty_slnk(S_slk_lr*);				/* linear list is empty */
static size_t len_slnk(S_slk_lr*);				/* the number of linear list */
static STATUS add_slnk(S_slk_lr*,S_slk_lr*);			/* add a new element append the linear list */
static S_slk_lr* get_slnk(S_slk_lr*,const S_slk_lr*);		/* get the element of index in linear list */
static S_slk_lr* next_slnk(S_slk_lr*,const S_slk_lr*);		/* get the element of index in linear list */
static S_slk_lr* prior_slnk(S_slk_lr*,const S_slk_lr*);		/* get the element of index in linear list */
static STATUS insert_slnk(S_slk_lr*,S_slk_lr*,S_slk_lr*);	/* insert a data element */
static STATUS delete_slnk(S_slk_lr*,S_slk_lr*);			/* delete a data element */

#endif
